package com.xydtech.ecard.merchant.service;

import com.alibaba.fastjson.JSONObject;
import com.xydtech.ecard.merchant.domain.*;

import java.util.List;

/**
 * 电子名片个人信息图表统计Service接口
 *
 * @author yuzhiguo
 * @date 2024-09-13 上午11:25
 */
public interface IEcardBranchPersonChartService {

    /**
     * 本人个人建档拜访数量
     * @param userId
     * @param perType 个人客户类型，1：农户，2：新市民
     * @return
     */
    JSONObject getPerFilingVisitsStatistics(Long userId, String perType);

    /**
     * 本人网格建档数量
     * @param userId
     * @return
     */
    JSONObject getPerAreaFilings(Long userId);

    /**
     * 全行个人建档拜访数量
     * @param deptId
     * @param perType 个人客户类型，1：农户，2：新市民
     * @return
     */
    JSONObject getPerAllFilingVisitsNums(Long deptId, String perType);

    /**
     * 全行网格建档数量
     * @param deptId
     * @return
     */
    JSONObject getPerAllAreaFilings(Long deptId);

    /**
     * 个人超时拜访数量
     * @param deptId
     * @param perType 个人客户类型，1：农户，2：新市民
     * @return
     */
    JSONObject getPerTimeoutVisitsNums(Long deptId, String perType);

    /**
     * 查询个人信息建档折线图数据
     * @param deptId
     * @param perType 个人客户类型，1：农户，2：新市民
     * @return
     */
    List<EcardBranchEcardChart> getPerFilingLineChart(Long deptId, String perType);

    /**
     * 查询个人信息建档折线图数据（小程序接口）
     * @param deptId
     * @param perType 个人客户类型，1：农户，2：新市民
     * @return
     */
    List<EcardBranchEcardChart> getPerFilingLineChartByApplet(Long deptId, String perType);

    /**
     * 查询个人信息拜访折线图数据
     * @param deptId
     * @param perType 个人客户类型，1：农户，2：新市民
     * @return
     */
    List<EcardBranchEcardChart> getPerVisitLineChart(Long deptId, String perType);

    /**
     * 查询个人信息拜访折线图数据（小程序接口）
     * @param deptId
     * @param perType 个人客户类型，1：农户，2：新市民
     * @return
     */
    List<EcardBranchEcardChart> getPerVisitLineChartByApplet(Long deptId, String perType);

    /**
     * 机构个人建档排名
     * @param ecardBranchDeptFiling
     * @return
     */
    List<EcardBranchDeptFiling> getPerDeptFilingList(EcardBranchDeptFiling ecardBranchDeptFiling);

    /**
     * 机构个人拜访次数排名
     * @param ecardBranchDeptVisit
     * @return
     */
    List<EcardBranchDeptVisit> getPerDeptVisitsList(EcardBranchDeptVisit ecardBranchDeptVisit);

    /**
     * 机构个人超时拜访次数排名
     * @param ecardBranchDeptDoTask
     * @return
     */
    List<EcardBranchDeptDoTask> getPerDeptDoTaskList(EcardBranchDeptDoTask ecardBranchDeptDoTask);

    /**
     * 机构个人超时未拜访次数排名
     * @param ecardBranchDeptUndoTask
     * @return
     */
    List<EcardBranchDeptUndoTask> getPerDeptUnDoTaskList(EcardBranchDeptUndoTask ecardBranchDeptUndoTask);

    /**
     * 营销人员个人建档排名
     * @param ecardBranchUserFiling
     * @return
     */
    List<EcardBranchUserFiling> getPerUserFilingList(EcardBranchUserFiling ecardBranchUserFiling);

    /**
     * 营销人员个人拜访次数排名
     * @param ecardBranchUserVisit
     * @return
     */
    List<EcardBranchUserVisit> getPerUserVisitsList(EcardBranchUserVisit ecardBranchUserVisit);

    /**
     * 营销人员个人超时拜访次数排名
     * @param ecardBranchUserDoTask
     * @return
     */
    List<EcardBranchUserDoTask> getPerUserDoTaskList(EcardBranchUserDoTask ecardBranchUserDoTask);

    /**
     * 营销人员个人超时未拜访次数排名
     * @param ecardBranchUserUndoTask
     * @return
     */
    List<EcardBranchUserUndoTask> getPerUserUnDoTaskList(EcardBranchUserUndoTask ecardBranchUserUndoTask);
}
